
package org.xteam.box2text.parser.ast;

public class DefaultBoxVisitor implements IBoxVisitor {

	public void visitBoxFile(BoxFile aBoxFile) {
			aBoxFile.getImportName().visit(this);
			for (Rule e : aBoxFile.getRules()) {
				e.visit(this);
			}
	}
	
	public void visitRule(Rule aRule) {
			aRule.getClassName().visit(this);
			aRule.getBoxspec().visit(this);
	}
	
	public void visitTextBox(TextBox aTextBox) {
	}
	
	public void visitModelAccess(ModelAccess aModelAccess) {
			aModelAccess.getExpr().visit(this);
			for (Option e : aModelAccess.getOptions()) {
				e.visit(this);
			}
	}
	
	public void visitBox(Box aBox) {
			aBox.getType().visit(this);
			for (Option e : aBox.getOptions()) {
				e.visit(this);
			}
			for (BoxSpec e : aBox.getChildren()) {
				e.visit(this);
			}
	}
	
	public void visitCommand(Command aCommand) {
			aCommand.getName().visit(this);
			aCommand.getExpr().visit(this);
			for (BoxSpec e : aCommand.getArguments()) {
				e.visit(this);
			}
	}
	
	public void visitOption(Option aOption) {
			aOption.getName().visit(this);
			aOption.getValue().visit(this);
	}
	
	public void visitIntegerValue(IntegerValue aIntegerValue) {
	}
	
	public void visitIdentValue(IdentValue aIdentValue) {
	}
	
	public void visitStringValue(StringValue aStringValue) {
	}
	
	public void visitListValue(ListValue aListValue) {
			for (Ident e : aListValue.getElements()) {
				e.visit(this);
			}
	}
	
	public void visitName(Name aName) {
			for (Ident e : aName.getElements()) {
				e.visit(this);
			}
	}
	
	public void visitFunction(Function aFunction) {
			aFunction.getName().visit(this);
			for (Expression e : aFunction.getArguments()) {
				e.visit(this);
			}
	}
	
	public void visitIntegerExpression(IntegerExpression aIntegerExpression) {
	}
	
	public void visitStringExpression(StringExpression aStringExpression) {
	}
	
	public void visitIdent(Ident aIdent) {
	}
	
}
